Skip to content

dgb: concrete ICoinNode + minimal rpc layer (family-1 fast-follow) - #77

Merged
frstrtr merged 1 commit into
masterfrom
dgb/family1-coinnode
Jun 11, 2026
Merged

dgb: concrete ICoinNode + minimal rpc layer (family-1 fast-follow)#77
frstrtr merged 1 commit into
masterfrom
dgb/family1-coinnode

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Standalone dgb/ fast-follow to #69 per the family-1 (b)-decouple ruling: the dgb concrete bind lands as its own PR, kept out of the combined head.

What

Path A minimal-stub coin layer for c2pool-dgb, mirroring the btc coin layer (2-arg/no-MWEB submit shape, btc d9c0f16 reference):

  • rpc_data.hppdgb::coin::rpc::WorkData (m_data/m_hashes/m_latency; m_txs deferred until the DGB transaction port lands in M3)
  • rpc.hpp — NodeRPC stub: getwork() throws per the ICoinNode no-template contract; submit_block_hex(const std::string&, bool) returns false (no transport until M3; real client is a body-only swap)
  • node_interface.hppdgb::interfaces::Node shared-state surface (work variable + new_block event)
  • node.hpp — per-coin Node owner (NodeRPC only; P2P/handshake deferred to M3)
  • coin_node.{hpp,cpp}concrete dgb::coin::CoinNode : core::coin::ICoinNode: full per-coin WorkData retained coin-side, only the agnostic WorkView slice crosses the seam
  • template_builder.hppCoinNodeInterface trimmed mirror (submit_block(BlockType&) deferred with the block.hpp port)
  • coin/CMakeLists.txt — dgb_coin lib staged but NOT registered (parent add_subdirectory(coin) stays commented out pending the ci-steward OBJECT-lib convention), so this PR is build-inert

Guardrail compliance

Not in scope

M3 embedded daemon (EmbeddedCoinNode, real RPC transport, P2P, transaction/block ports). DGB smoke-matrix CI job — coordinating with ci-steward separately once the binary links.

…ew seam

Path A minimal-stub surface for the c2pool-dgb family-1 bind, mirroring
the btc coin layer (2-arg no-MWEB submit shape):

- rpc_data.hpp: rpc::WorkData (m_data/m_hashes/m_latency; m_txs deferred
  until the DGB transaction port lands with M3)
- rpc.hpp: NodeRPC stub -- getwork() throws (ICoinNode no-template
  contract), submit_block_hex(str, bool) returns false; real transport
  is an M3 body-only swap
- node_interface.hpp: dgb::interfaces::Node shared-state surface (work
  variable + new_block event)
- node.hpp: per-coin Node owner (NodeRPC only; P2P deferred to M3)
- coin_node.{hpp,cpp}: concrete dgb::coin::CoinNode : core::coin::ICoinNode;
  full WorkData retained coin-side, agnostic WorkView slice crosses the seam
- template_builder.hpp: CoinNodeInterface trimmed mirror (submit_block
  deferred with the block.hpp port)
- coin/CMakeLists.txt: dgb_coin lib staged; NOT registered -- top-level
  wiring follows the OBJECT-lib convention, so this commit is build-inert

V36 scope: DGB validates Scrypt only; other algos accept-by-continuity or
ignored. Touches src/impl/dgb/ only; zero lines of the #69 adapter/seam
surface.
@frstrtr
frstrtr force-pushed the dgb/family1-coinnode branch from ba7a349 to 40a55af Compare June 11, 2026 04:13
@frstrtr
frstrtr merged commit d7c24c7 into master Jun 11, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant